Skip to content

[READY] - nixos-modules.routers.*: frr updates and ipv6 tests#1104

Merged
kylerisse merged 9 commits intomasterfrom
rh/1772076294frr3
Feb 27, 2026
Merged

[READY] - nixos-modules.routers.*: frr updates and ipv6 tests#1104
kylerisse merged 9 commits intomasterfrom
rh/1772076294frr3

Conversation

@sarcasticadmin
Copy link
Member

@sarcasticadmin sarcasticadmin commented Feb 27, 2026

Description of PR

Including the ospf6 daemon and appropriate v6 links. Additionally support trunk interfaces as args to routers to be able to test between vm and bare metal. Thank you @kylerisse and @djacu for helping with this!

Previous Behavior

  • ipv4 routes on router ospf vlans
  • ospf daemon only
  • cooper0 assumed trunk interface

New Behavior

  • ipv6 routes added to vlan90x vlans
  • ospf and ospf6 services running
  • added trunk Interfaces option for routers.{conf, expo}
  • vm tests for ipv6 links
  • vm tests for relays and radvd

Tests

  • Tests pass in CI
  • Tests pass on bare metal
[root@router-conf:~]# vtysh -c 'show ipv6 route'
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric, t - Table-Direct,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

IPv6 unicast VRF default:
C>* 2001:470:f026:500::/64 is directly connected, bridge500, weight 1, 00:09:20
K * 2001:470:f026:500::/64 [0/256] is directly connected, bridge500, weight 1, 00:09:22
L>* 2001:470:f026:500::1/128 is directly connected, bridge500, weight 1, 00:09:20
C>* 2001:470:f026:501::/64 is directly connected, bridge501, weight 1, 00:09:20
K * 2001:470:f026:501::/64 [0/256] is directly connected, bridge501, weight 1, 00:09:22
L>* 2001:470:f026:501::1/128 is directly connected, bridge501, weight 1, 00:09:20
C>* 2001:470:f026:502::/64 is directly connected, bridge502, weight 1, 00:09:20
K * 2001:470:f026:502::/64 [0/256] is directly connected, bridge502, weight 1, 00:09:22
L>* 2001:470:f026:502::1/128 is directly connected, bridge502, weight 1, 00:09:20
C>* 2001:470:f026:503::/64 is directly connected, bridge503, weight 1, 00:09:20
K * 2001:470:f026:503::/64 [0/256] is directly connected, bridge503, weight 1, 00:09:22
L>* 2001:470:f026:503::1/128 is directly connected, bridge503, weight 1, 00:09:20
C>* 2001:470:f026:504::/64 is directly connected, bridge504, weight 1, 00:09:20
K * 2001:470:f026:504::/64 [0/256] is directly connected, bridge504, weight 1, 00:09:22
L>* 2001:470:f026:504::1/128 is directly connected, bridge504, weight 1, 00:09:20
C>* 2001:470:f026:505::/64 is directly connected, bridge505, weight 1, 00:09:20
K * 2001:470:f026:505::/64 [0/256] is directly connected, bridge505, weight 1, 00:09:22
L>* 2001:470:f026:505::1/128 is directly connected, bridge505, weight 1, 00:09:20
C>* 2001:470:f026:506::/64 is directly connected, bridge506, weight 1, 00:09:20
K * 2001:470:f026:506::/64 [0/256] is directly connected, bridge506, weight 1, 00:09:22
L>* 2001:470:f026:506::1/128 is directly connected, bridge506, weight 1, 00:09:20
C>* 2001:470:f026:507::/64 is directly connected, bridge507, weight 1, 00:09:20
K * 2001:470:f026:507::/64 [0/256] is directly connected, bridge507, weight 1, 00:09:22
L>* 2001:470:f026:507::1/128 is directly connected, bridge507, weight 1, 00:09:20
O   2001:470:f026:901::/64 [110/10] is directly connected, bridge901, weight 1, 00:00:08
C>* 2001:470:f026:901::/64 is directly connected, bridge901, weight 1, 00:09:20
K * 2001:470:f026:901::/64 [0/256] is directly connected, bridge901, weight 1, 00:09:22
L>* 2001:470:f026:901::2/128 is directly connected, bridge901, weight 1, 00:09:20
O>* 2001:470:f026:902::/64 [110/20] via fe80::c04f:f1ff:feca:398c, bridge901, weight 1, 00:01:02
O   2001:470:f026:903::/64 [110/100] is directly connected, bridge903, weight 1, 00:01:02
C>* 2001:470:f026:903::/64 is directly connected, bridge903, weight 1, 00:09:20
K * 2001:470:f026:903::/64 [0/256] is directly connected, bridge903, weight 1, 00:09:22
L>* 2001:470:f026:903::2/128 is directly connected, bridge903, weight 1, 00:09:20
C * fe80::/64 is directly connected, backdoor0, weight 1, 00:09:20
C * fe80::/64 is directly connected, bridge503, weight 1, 00:09:20
C * fe80::/64 is directly connected, bridge903, weight 1, 00:09:20
C * fe80::/64 is directly connected, bridge505, weight 1, 00:09:20
C * fe80::/64 is directly connected, bridge901, weight 1, 00:09:20
C * fe80::/64 is directly connected, bridge504, weight 1, 00:09:21
C * fe80::/64 is directly connected, bridge502, weight 1, 00:09:21
C * fe80::/64 is directly connected, bridge506, weight 1, 00:09:21
C * fe80::/64 is directly connected, bridge501, weight 1, 00:09:21
C * fe80::/64 is directly connected, bridge507, weight 1, 00:09:21
C>* fe80::/64 is directly connected, bridge500, weight 1, 00:09:21

Comment on lines 157 to 166
border.wait_until_succeeds("ping -c 5 172.20.3.2", timeout=60)
border.wait_until_succeeds("ping -c 5 172.20.3.3", timeout=60)

# conference can reach border-expo link
conference.succeed("ping -c 5 172.20.2.1")
conference.succeed("ping -c 5 172.20.2.3")
conference.wait_until_succeeds("ping -c 5 172.20.2.1", timeout=60)
conference.wait_until_succeeds("ping -c 5 172.20.2.3", timeout=60)

# expo can reach conference-border link
expo.succeed("ping -c 5 172.20.1.1")
expo.succeed("ping -c 5 172.20.1.2")
expo.wait_until_succeeds("ping -c 5 172.20.1.1", timeout=60)
expo.wait_until_succeeds("ping -c 5 172.20.1.2", timeout=60)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

consistently getting 93s with time nix run .#hydraJobs.scale-nixos-tests.x86_64-linux.routers.driver and a warm cache

________________________________________________________
Executed in   93.14 secs    fish           external
   usr time   14.98 secs    0.00 micros   14.98 secs
   sys time   11.87 secs  825.00 micros   11.87 secs

Comment on lines +133 to +135
border.succeed("ping -c 5 2001:470:f026:901::2")
border.succeed("ping -c 5 172.20.2.3")
border.succeed("ping -c 5 2001:470:f026:902::3")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IPv6!

mkOption
;

genAttrs' = xs: f: listToAttrs (map f xs);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🦾

@sarcasticadmin sarcasticadmin changed the title [WIP] - nixos-modules.routers.*: frr updates and ipv6 tests [READY] - nixos-modules.routers.*: frr updates and ipv6 tests Feb 27, 2026
Copy link
Member

@kylerisse kylerisse left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#1105 !

@kylerisse kylerisse merged commit b1c7971 into master Feb 27, 2026
4 checks passed
@kylerisse kylerisse deleted the rh/1772076294frr3 branch February 27, 2026 18:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants